feat: add Pipedream MCP support#5858
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly expands Flowise's integration capabilities by introducing a new Pipedream MCP tool node. This node allows Flowise agents to seamlessly interact with a vast ecosystem of third-party APIs and services through Pipedream's Connect platform. The implementation focuses on robust authentication, dynamic user context management, and clear user interaction for sensitive operations, making it easier to build powerful, integrated agentflows. Highlights
Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new Pipedream MCP tool, which is a great addition to Flowise's capabilities. The implementation is robust, with thorough error handling, caching, and consideration for the user experience in the UI. The code is well-structured and follows existing patterns in the codebase. My feedback focuses on improving TypeScript type safety by replacing several instances of any with more specific types and fixing a missing import. All original comments were kept as they align with general good practices and do not contradict any provided rules. Overall, this is an excellent contribution.
|
@rohan-patil2 Thanks a lot Rohan for your contribution. Please find below some feedback - Code Quality & MaintenanceGemini Code Assist: Address and resolve all pending suggestions and warnings provided by Gemini. Pipedream Credential ConfigurationProject ID Field: Modify the Project ID to be optional. (Note: This is intended for Open Source users who may not require it; please verify this logic before finalizing). OAuth Scopes: Set the default value for OAuth scopes to connect:*. UI / UX EnhancementsConnection Flow: When a user is prompted to connect via the chat, ensure the Pipedream connect dialog opens automatically in a new browser tab. App Slug Field: Enhance the "Info" tooltip to include: Specific examples of supported apps. A note clarifying that multiple apps must be provided in a comma-separated format. User Identification: * Rename the External User ID field to User ID. Add an "Info" icon explaining how to add variables in the dedicated Variables section. Set the default value for this field to {{$vars.user_email}}. |
61cd2a2 to
8768dfc
Compare
8768dfc to
20a2e2d
Compare
harshit-flowise
left a comment
There was a problem hiding this comment.
@HenryHengZJ I tested the pipedream node and it looks good to me.
| </code> | ||
| ) | ||
| }, | ||
| a({ href, children, ...linkProps }) { |
There was a problem hiding this comment.
what is this changes regards to?
There was a problem hiding this comment.
The tool returns markdown responses containing links in the chat when it asks users to sign-in by clicking on the pipedreams link, and this ensures those links behave safely and open up in a new tab.
target='_blank' — Makes all links rendered in markdown open in a new browser tab instead of navigating away from the current Flowise page. Without this, clicking a link in a chat response would navigate the user away from the app.
rel='noopener noreferrer' — A security best practice when using target='_blank'. It prevents the newly opened page from accessing the original page's window.opener object, which could otherwise be exploited (known as "reverse tabnapping").
Summary
Adds a new Pipedream MCP tool node that enables Flowise agents to connect to any of Pipedream's 3,000+ APIs and 10,000+ tools via the Pipedream Connect MCP service. The integration uses Streamable HTTP transport to communicate with Pipedream's remote MCP server, authenticates via OAuth2 client credentials, and supports dynamic per-user scoping for multi-user agentflows.
Features
overrideConfig.varsin the prediction API.connect:*,connect:actions:*) following the principle of least privilege.Out of Scope
sub-agentandfull-configtool modes with stateful conversation trackingTesting Performed
ACTION_REQUIREDwith clickable connect URLexternalUserIdviaoverrideConfig.vars{{$vars.*}}at runtime